package com.dms.modules.product.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dms.common.security.SecurityUtils;
import com.dms.modules.merchant.service.MerchantService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

/**
 * 商品基础控制器
 * 提供公共方法供子类使用
 */
@Slf4j
@RestController
@Api(tags = "商品基础接口")
public abstract class BaseProductController {

    @Autowired
    private MerchantService merchantService;

    /**
     * 获取当前登录用户ID，如果未登录返回null
     */
    protected Long getUserId() {
        return SecurityUtils.getCurrentUserId();
    }

    /**
     * 获取当前商家ID，如果不是商家则返回null
     */
    protected Long getCurrentMerchantId() {
        Long userId = getUserId();
        if (userId == null) {
            return null;
        }
        return merchantService.getByUserId(userId).getId();
    }

    /**
     * 将IPage转换为Page
     */
    protected <T> Page<T> convertToPage(IPage<T> iPage) {
        if (iPage == null) {
            return null;
        }
        Page<T> page = new Page<>(iPage.getCurrent(), iPage.getSize(), iPage.getTotal());
        page.setRecords(iPage.getRecords());
        return page;
    }
} 